/**
 * @(#)AsignacionK.java Feb 20, 2007
 *
 * Copyright (c) 2005-2010 Psiqueware S.A. de C.V. All Rights Reserved.
 * This software is the proprietary information Psiqueware S.A. de C.V.
 * Use is subject to license terms.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 * <br/>Usuario : Psique
 * <br/>Creaci&oacute;n: Feb 20, 2007 - 2:26:40 PM
 * <br/>
 * <br/>
 * <br/><t5>Cambios :</t5>
 * <br/><b>Fecha | Autor  |  Cambios</b>
 * <ul>
 * <li>Feb 20, 2007 | <a href = "mailto:AngelElectrico@PsiqueWare.com">Psique</a> | Creaci&oacute;n del Objeto.</li>
 * <li>Abr 19, 2007 | <a href = "mailto:AngelElectrico@PsiqueWare.com">Psique</a> | Se eliminar&oacute;n las referencias a las clases Empresa, Deportamento, etc y se cambiar&oacute;n por referencias a Estructura.</li>
 * </ul>
 */

package com.psiqueware.jazmin.empresas.recursos.humanos.modelo;

import com.psiqueware.alheli.basico.BaseObject;
import com.psiqueware.jazmin.empresas.recursos.financieros.CentroCostos;
import com.psiqueware.jazmin.empresas.recursos.humanos.Asignacion;
import com.psiqueware.jazmin.empresas.recursos.humanos.Empleado;
import com.psiqueware.jazmin.empresas.recursos.materiales.Ubicacion;
import com.psiqueware.tulipan.organizacional.Estructura;

/**
 * Informaci&oacute;n sobre donde y como esta asignado un Empleado.
 * <br/>Paquete Original: com.psiqueware.laVIE.empresas.empleados.modelo
 * <br/>Nombre  Original: AsignacionK
 * <br/>Oprima para ver : <a href="AsignacionK.java.html"><i>C&oacute;digo Fuente</i> </a>
 *
 * @author <a href="mailto:AngelElectrico@PsiqueWare.com">Psique</a>
 * @version Revision: 1.1 Feb 20, 2007 2:26:40 PM
 * @noinspection ClassWithoutLogger
 */
public class AsignacionK extends BaseObject implements Asignacion
{

    /** {@link Ubicacion} de la {@link Asignacion}. */
    private Ubicacion m_ubicacion;

    /** {@link Empleado} que tiene la {@link Asignacion}. */
    private Empleado m_empleado;

    /** {@link CentroCostos} al que es cargado el {@link Empleado}. */
    private CentroCostos m_centroCostos;

    /** {@link Estructura} al que pertenece el {@link Empleado}. */
    private Estructura m_estructura;


    /** Constructor de AsignacionK. */
    public AsignacionK ()
    {

    }

    /**
     * Constructor de AsignacionK.
     *
     * @param empleado     que va a desempe&ntilde;ar esta asignaci&oacute;n.
     * @param ubicacion    donde la va a desempe&ntilde;ar.
     * @param centroCostos con el que se le va a pagar.
     * @param estructura   para el que trabajar&aacute;.
     */
    public AsignacionK ( final Empleado empleado, final Ubicacion ubicacion, final CentroCostos centroCostos, final Estructura estructura )
    {
        m_empleado = empleado;
        m_ubicacion = ubicacion;
        m_centroCostos = centroCostos;
        m_estructura = estructura;
    }


    /**
     * Devuelve el {@link Ubicacion} de la {@link Asignacion}.
     *
     * @return valor de 'ubicacion'.
     *
     * @see com.psiqueware.jazmin.empresas.recursos.materiales.Ubicacion
     */
    public Ubicacion getUbicacion ()
    {
        return m_ubicacion;
    }

    /**
     * Establece el {@link Ubicacion} de la {@link Asignacion}.
     *
     * @param ubicacion nuevo valor para 'ubicacion'.
     *
     * @see com.psiqueware.jazmin.empresas.recursos.materiales.Ubicacion
     */
    public void setUbicacion ( final Ubicacion ubicacion )
    {
        m_ubicacion = ubicacion;
    }

    /**
     * Devuelve el {@link Empleado} que tiene la {@link Asignacion}.
     *
     * @return valor de 'empleado'.
     *
     * @see Empleado
     */
    public Empleado getEmpleado ()
    {
        return m_empleado;
    }

    /**
     * Establece el {@link Empleado} que tiene la {@link Asignacion}.
     *
     * @param empleado nuevo valor para 'empleado'.
     *
     * @see Empleado
     */
    public void setEmpleado ( final Empleado empleado )
    {
        m_empleado = empleado;
    }

    /**
     * Devuelve el {@link CentroCostos} al que es cargado el {@link Empleado}.
     *
     * @return valor de 'centroCostos'.
     *
     * @see CentroCostos
     */
    public CentroCostos getCentroCostos ()
    {
        return m_centroCostos;
    }

    /**
     * Establece el {@link CentroCostos} al que es cargado el {@link Empleado}.
     *
     * @param centroCostos nuevo valor para 'centroCostos'.
     *
     * @see CentroCostos
     */
    public void setCentroCostos ( final CentroCostos centroCostos )
    {
        m_centroCostos = centroCostos;
    }

    /**
     * Devuelve el {@link Estructura} al que pertenece el {@link Empleado}.
     *
     * @return valor de 'estructura'.
     *
     * @see Estructura
     */
    public Estructura getEstructura ()
    {
        return m_estructura;
    }

    /**
     * Establece el {@link Estructura} al que pertenece el {@link Empleado}.
     *
     * @param estructura nuevo valor para 'estructura'.
     *
     * @see Estructura
     */
    public void setEstructura ( final Estructura estructura )
    {
        m_estructura = estructura;
    }

    /**
     * Convierte este {@link Asignacion} a su representación textual.
     *
     * @noinspection DuplicateStringLiteralInspection,HardCodedStringLiteral,HardcodedLineSeparator
     */
    public String toString ()
    {
        StringBuilder sb = new StringBuilder ();
        sb.append ( "<Instance Class = '" ).append ( this.getClass ().getCanonicalName () ).append ( "'>" );
        sb.append ( "<ubicacion>" ).append ( m_ubicacion ).append ( "</ubicacion> " );
        sb.append ( "<empleado>" ).append ( m_empleado ).append ( "</empleado> " );
        sb.append ( "<centroCostos>" ).append ( m_centroCostos ).append ( "</centroCostos> " );
        sb.append ( "<departamento>" ).append ( m_estructura ).append ( "</departamento> " );
        sb.append ( "</Instance>" );
        return sb.toString ();
    }
}

